查看原文
其他

三分钟速览cpu,socket,core,thread等术语之间的关系

The following article is from 卯时卯刻 Author KINGYT

嘘,你已经中了幻术~




当我们在看技术文档时,经常会发现很多有关cpu的术语,比如cpu、cpu socket、cpu core、hyper-threading等,乱乱的分不清楚,这篇文章我带大家用三分钟时间,快速的过一遍各种术语代表什么,以及它们之间的关系。


0x00 CPU


cpu全称是central processing unit,中文又叫中央处理器,是用来执行我们的代码,处理各种逻辑的地方,它可以被称之为计算机的大脑。


现在cpu的概念已经比较宽泛了,在不同的语境下通常表示不同的意思,不过如果我们没有指定语境,通常cpu就是指这个:



0x01 CPU socket


如果我们自己组装过电脑的话,应该知道cpu是通过一个插槽安装在主板上的,这个插槽就叫做 cpu socket,它长这个样子:



0x02 Core


core的中文意思是核心,它就是我们平时说的,一个cpu中有几核的核的概念。


其实在很久之前是没有core的概念的,一个cpu就是一个完整的物理处理单元,之后由于多核技术的发展,cpu的概念转变为了一个容器,而core则变成了真正的物理处理单元。


一个cpu中可以有多个core,各个core之间是相互独立,且可以并行执行逻辑的,每个core都有自己单独的寄存器,l1, l2 缓存等物理硬件。



0x03 Thread


由于cpu的执行速度非常快,而其他部件相对来说又比较慢,所以cpu经常会处于空闲状态,为了充分利用cpu资源,intel又在core的基础上提出了hyper-threading概念,即一个core里可以模拟多个逻辑核,这个就叫做thread。


与core不同是,thread并不是一个物理概念,而是一个软件概念,它本质上就是利用core的空闲时间,来执行其他代码,所以thread其实只能算是并发,而不能算是并行。


thread和以上术语的关系是:



0x04 vCPU


在我们购买云服务器的时候,经常会遇到一个概念叫vCPU,比如下面这样:


这里的vCPU其实就是指的虚拟核,也就是上面的thread。


0x05 实践


在linux下,我们可以通过以下命令来查看当前机器的cpu拓扑结构:



由上可见,该机器的主板上有一个cpu插槽(socket),这个插槽上的cpu有2核(core),且每核上又有2个线程(thread),也就是说,这个机器是2核4线程的。


上图中thread总数是用cpu来表示的,这也是为什么上文说,cpu是个比较宽泛的概念,在不同的语境下有不同的定义,这里表示的就是逻辑核,也就是thread。


如果我们只想查看该机器上有几个逻辑核,不想看其他数据的话,也可以用下面的命令:



其实在cpu的拓扑结构中,并不只有上面的几个概念,还有很多其他术语,只不过是我们比较少看到。


这些术语可以通过lscpu的man文档查看:



好,就这些,希望对你有所帮助。


方便的话也帮忙转发下,或点个赞,谢谢。



后台回复“加群”,带你进入高手如云交流群


推荐阅读:

Linux系统常用命令速查手册

Linux经典的几款收包引擎

这几个 IPv6 问题,你懂了吗

图解一致性哈希算法,看这文就够了!

网络故障排除工具 | 快速定位网络故障

一文详解 FTP、FTPS 与 SFTP 的原理

一文读懂容器网络发展

5 分钟看懂 HTTP 3

一文搞懂CDN加速原理

Linux used 内存到底哪里去了?

免费下载!《阿里工程师的自我修养》

阿里云深入浅出K8s与CDN排坑指南免费领取

5分钟给你讲清楚Kubernetes

容易被遗忘的10个Linux命令,很实用!

经典!服务端TCP连接的TIME_WAIT过多

8 个问题彻底搞透 DNS 协议

三张图彻底搞懂iptables和netfilter

故障排查:K8s中Pod无法正常解析域名

网络排错大讲解~

HTTP/3 原理实战

OVS 和 OVS-DPDK 对比

微软出品的最新K8S学习指南3.0下载



喜欢,就给我一个“在看”



10T 技术资源大放送!包括但不限于:云计算、虚拟化、微服务、大数据、网络、Linux、Docker、Kubernetes、Python、Go、C/C++、Shell、PPT 等。在公众号内回复「1024」,即可免费获取!!

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存